/**
 * 
 */
package metier;

import java.util.Date;

/**
 * @author Vincent AMODEOS
 * 
 */
public abstract class AnneeEtude {

   
	private String nom = null; //nom de l'ann�e d'etude
	private Date dateDebut = null; // date de d�but de l'ann�e d'�tude
	private Date  dateFin = null; //date de fin de l'ann�e d'�tude
	private String description = null; //Description de l'ann�e d'�tude
	private int nbSeancesMatin = 0; // nombre de s�ance de cours par matin�e de l'ann�e d'�tude
	private int nbSeancesAprem = 0; // nombre de s�ance de cours par apr�s midi de l'ann�e d'�tude
	private int dureeSeance = 0; // dur�e d'une s�ance de cour de l'ann�e d'�tude
	private Formation formation=null; // formation de la quelle est issu l'annee d'etude


        public AnneeEtude(){
            
        }
	/**
	 * @return the formation
	 */
	public Formation getFormation() {
		return formation;
	}




	/**
	 * @param formation the formation to set
	 */
	public void setFormation(Formation formation) {
		this.formation = formation;
	}




	/**
	 * @param id
	 * @param nom
	 * @param dateDebut
	 * @param dateFin
	 * @param description
	 * @param nbSeancesMatin
	 * @param nbSeancesAprem
	 * @param dureeSeance
	 */
	public AnneeEtude( String nom, Date dateDebut, Date dateFin,
			String description, int nbSeancesMatin, int nbSeancesAprem,
			int dureeSeance) {
		this.nom = nom;
		this.dateDebut = dateDebut;
		this.dateFin = dateFin;
		this.description = description;
		this.nbSeancesMatin = nbSeancesMatin;
		this.nbSeancesAprem = nbSeancesAprem;
		this.dureeSeance = dureeSeance;
	}






	/**
	 * @return le nom
	 */
	public String getNom() {return nom;}


	/**
	 * @param nom le nom de l'ann�e d'�tude
	 */
	public void setNom(String nom) {this.nom = nom;}


	/**
	 * @return la date de debut de l'ann�e d'�tude
	 */
	public Date getDateDebut() {return dateDebut;}


	/**
	 * @param dateDebut la date de debut de l'ann�e d'�tude
	 */
	public void setDateDebut(Date dateDebut) {this.dateDebut = dateDebut;}


	/**
	 * @return la date de Fin de l'ann�e d'�tude
	 */
	public Date getDateFin() {return dateFin;}


	/**
	 * @param dateFin the dateFin to set
	 */
	public void setDateFin(Date dateFin) {this.dateFin = dateFin;}


	/**
	 * @return la description de l'ann�e d'�tude
	 */
	public String getDescription() {return description;}


	/**
	 * @param description la description de l'ann�e d'�tude
	 */
	public void setDescription(String description) {this.description = description;}


	/**
	 * @return le nombre de seances de la matin� de l'ann�e d'�tude
	 */
	public int getNbSeancesMatin() {return nbSeancesMatin;}


	/**
	 * @param nbSeancesMatin le nombre de seances de la matin� de l'ann�e d'�tude
	 */
	public void setNbSeancesMatin(int nbSeancesMatin) {this.nbSeancesMatin = nbSeancesMatin;}


	/**
	 * @return le nombre de seances de l'apres midi de l'ann�e d'�tude
	 */
	public int getNbSeancesAprem() {return nbSeancesAprem;}


	/**
	 * @param nbSeancesAprem le nombre de seances de l'apres midi de l'ann�e d'�tude
	 */
	public void setNbSeancesAprem(int nbSeancesAprem) {this.nbSeancesAprem = nbSeancesAprem;}


	/**
	 * @return la duree d'une seance de l'ann�e d'�tude
	 */
	public int getDureeSeance() {return dureeSeance;}


	/**
	 * @param dureeSeance la  duree d'une seance de l'ann�e d'�tude
	 */
	public void setDureeSeance(int dureeSeance) {this.dureeSeance = dureeSeance;}

	
	/*Methode abstraite*/
	/* M�thodes abstraites */
	/**
	 * @throws ExceptionMetier 
	 * M�thode qui permet d'ins�rer l'ann�e d'�tude dans le syst�me de stockage
	 */
	public abstract void insert() throws ExceptionMetier;
	/**
	 * @throws ExceptionMetier 
	 * M�thode qui permet de mettre � jour l'ann�e d'�tude dans le syst�me de stockage
	 */
	public abstract void update() throws ExceptionMetier;
	/**
	 * @param idAnnee l'identifiant unique de l'ann�e d'�tude
	 * @throws ExceptionMetier 
	 * M�thode qui permet de charger l'ann�e d'�tude � partir du syst�me de stockage
	 */
	public abstract void load(int idAnnee) throws ExceptionMetier;
	/**
	 * @throws ExceptionMetier 
	 * M�thode qui permet de supprimer l'ann�e d'�tude dans le syst�me de stockage
	 */
	public abstract void delete() throws ExceptionMetier;

}